package 
{
    import flash.events.*;

    public class SWFAddressEvent extends Event
    {
        private var _path:String;
        private var _parameters:Object;
        private var _pathNames:Array;
        private var _value:String;
        private var _parametersNames:Array;
        public static const INIT:String = "init";
        public static const CHANGE:String = "change";

        public function SWFAddressEvent(param1:String)
        {
            super(param1, false, false);
            return;
        }

        public function get parametersNames() : Array
        {
            if (_parametersNames == null)
            {
                _parametersNames = SWFAddress.getParameterNames();
            }
            return _parametersNames;
        }

        override public function get target() : Object
        {
            return SWFAddress;
        }

        override public function clone() : Event
        {
            return new SWFAddressEvent(type);
        }

        public function get pathNames() : Array
        {
            if (_pathNames == null)
            {
                _pathNames = SWFAddress.getPathNames();
            }
            return _pathNames;
        }

        public function get path() : String
        {
            if (_path == null)
            {
                _path = SWFAddress.getPath();
            }
            return _path;
        }

        override public function toString() : String
        {
            return formatToString("SWFAddressEvent", "type", "bubbles", "cancelable", "eventPhase", "value", "path", "pathNames", "parameters", "parametersNames");
        }

        override public function get currentTarget() : Object
        {
            return SWFAddress;
        }

        public function get value() : String
        {
            if (_value == null)
            {
                _value = SWFAddress.getValue();
            }
            return _value;
        }

        public function get parameters() : Object
        {
            var _loc_1:int = 0;
            if (_parameters == null)
            {
                _parameters = new Object();
                _loc_1 = 0;
                while (_loc_1 < parametersNames.length)
                {
                    
                    _parameters[parametersNames[_loc_1]] = SWFAddress.getParameter(parametersNames[_loc_1]);
                    _loc_1++;
                }
            }
            return _parameters;
        }

        override public function get type() : String
        {
            return super.type;
        }

    }
}
